import CryptoJS from "crypto-js";
const Key = "3TmBYne7i3T8Jy3a";
// function PKCS7Padding(data: string, blockSize: number): string {
//   // console.log("填充前", data);
//   const padding = blockSize - (data.length % blockSize);
//   const padStr = String.fromCharCode(padding).repeat(padding);
//   // for (let i = 0; i < padStr.length; i++) {
//   //   console.log(padStr.charCodeAt(i));
//   // }
//   // console.log("填充后", data + padStr);
//   return data + padStr;
// }

// function PKCS7Unpadding(data: string): string {
//   const padding = data.charCodeAt(data.length - 1);
//   return data.slice(0, data.length - padding);
// }

// function bytesToHex(bytes: Uint8Array): string {
//   return Array.from(bytes, byte => byte.toString(16).padStart(2, "0")).join("");
// }

// function hexToBytes(hex: string): Uint8Array {
//   const bytes = new Uint8Array(hex.length / 2);
//   for (let i = 0; i < hex.length; i += 2) {
//     bytes[i / 2] = parseInt(hex.substr(i, 2), 16);
//   }
//   return bytes;
// }
/**
 * AES加密
 * @param data 需要加密的数据
 * @param key 密钥
 * @returns 加密后的16进制字符串
 */
export function encrypt(plaintext: string): string {
  const encrypted = CryptoJS.AES.encrypt(plaintext, CryptoJS.enc.Utf8.parse(Key), {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
  });
  const hexCiphertext = encrypted.ciphertext.toString(CryptoJS.enc.Hex);
  return hexCiphertext;
}
/**
 * AES解密
 * @param encryptedData 需要解密的数据
 * @param Key 密钥
 * @returns 解密后的字符串
//  */
export function decrypt(ciphertext: string): string {
  const encrypted = CryptoJS.lib.CipherParams.create({
    ciphertext: CryptoJS.enc.Hex.parse(ciphertext),
  });
  const decryptedData = CryptoJS.AES.decrypt(encrypted, CryptoJS.enc.Utf8.parse(Key), {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
  });
  const decryptedText = decryptedData.toString(CryptoJS.enc.Utf8);
  return decryptedText;
}
